#elif defined(__ia64__)
- if (xc_ia64_get_pfn_list(xc_handle, domid, page_array,
- IO_PAGE_START >> PAGE_SHIFT, 3) != 3) {
- fprintf(logfile, "xc_ia64_get_pfn_list returned error %d\n", errno);
- exit(-1);
- }
-
+ page_array = (xen_pfn_t *)malloc(tmp_nr_pages * sizeof(xen_pfn_t));
+ if (page_array == NULL) {
+ fprintf(logfile, "malloc returned error %d\n", errno);
+ exit(-1);
+ }
+
shared_page = xc_map_foreign_range(xc_handle, domid, PAGE_SIZE,
PROT_READ|PROT_WRITE,
- page_array[0]);
-
- fprintf(logfile, "shared page at pfn:%lx, mfn: %016lx\n",
- IO_PAGE_START >> PAGE_SHIFT, page_array[0]);
+ IO_PAGE_START >> PAGE_SHIFT);
buffered_io_page =xc_map_foreign_range(xc_handle, domid, PAGE_SIZE,
PROT_READ|PROT_WRITE,
&image, &vcpus, &pae, &acpi, &apic) )
return NULL;
+#if defined(__ia64__)
+ /* Set vcpus to later be retrieved in setup_guest() */
+ xc_set_hvm_param(self->xc_handle, dom, HVM_PARAM_VCPUS, vcpus);
+#endif
if ( xc_hvm_build(self->xc_handle, dom, memsize, image) != 0 )
- return PyErr_SetFromErrno(xc_error);
+ return pyxc_error_to_exception();
+#if !defined(__ia64__)
/* Set up the HVM info table. */
va_map = xc_map_foreign_range(self->xc_handle, dom, XC_PAGE_SIZE,
PROT_READ | PROT_WRITE,